我們昨天講了CoreNATS的Subject Based Message,透過wildcard的機制讓subject能讓subscriber同時匹配多個subject。
但CoreNATS有一些缺陷在,今天我們講NATS的補充包JetStream,用來補足CoreNATS的不足。
好了~讓我們開始吧!
NATS JetStream是NATS用來補足CoreNATS不足的強化版本,提供持久化的訊息、訊息流的控制。作為一個開源的高性能訊息系統,JetStream進一步擴大CoreNATS的功能,讓開發團隊在分佈式系統中建立更複雜、可靠的訊息處理系統。
訊息持久化: JetStream允許讓訊息儲存在Stream裡,這表示即使subscriber沒有及時收到的情況下,訊息也不會遺失
確認訊息和排序:JetStream 支持消息確認機制,確保消息只有在成功處理後才會被刪除。此外,它還能保證消息的順序,這對於許多應用(如金融交易)來說是必不可少的
Stream的管理: 可以定義多個stream,每個stream可以設定不同的配置,這讓訊息的管理靈活性更高,能夠根據subscriber的需求調整
相較於CoreNATS的訊息接收方式是由subject分送給subscriber,subscriber是被動接收訊息的,而JetStream除了這個方式外,多了可以主動要訊息的模式。
JetStream明確定義跟CoreNATS不同的兩個新觀念:
Stream定義了NATS訊息保留的規則:
如果有一條NATS的訊息符合Stream設定的Subject,就會被JetStream存下來。透過管理Stream的方式,JetStream可以間接的做到訊息持久化。
NATS JetStream是個強大的訊息系統,通過訊息持久化、訊息確認、Stream和Consumer的管理,幫助開發團隊建構出穩定、高效的分佈式系統。隨著微服務和EDA越受大家的重視,JetStream是不可或缺的一部分。
明天我們接著細解JestStream另一個重要的功能 - Consumer。
好了~ 今天就到這邊!!